package com.soccertgc.data 
{
	
	import com.soccertgc.data.enum.Enum;

	public class EnumTest02 extends Enum
	{
		
		// -------------------------------------------------------------------------------
		// CONSTANTS
		// -------------------------------------------------------------------------------		
		
		public static const 	UNKNOWN:EnumTest02		= new EnumTest02(0, "UNKNOWN",	"unknown",	"u");
		public static const 	YES:EnumTest02			= new EnumTest02(1, "YES",		"yes",		"y");
		public static const 	NO:EnumTest02			= new EnumTest02(2, "NO", 		"no",		"n");
		public static const 	MAYBE:EnumTest02		= new EnumTest02(3, "MAYBE", 	"maybe",	"m");
		public static const 	SURE:EnumTest02			= new EnumTest02(4, "SURE", 	"sure",		"s");
		
		
		private static const 	REFERENCE:EnumTest02	= new EnumTest02(-1, "", "", "");
		
		// -------------------------------------------------------------------------------
		// STATIC
		// -------------------------------------------------------------------------------
		
		// Fake static constructor
		{
			// Init!
			init([EnumTest02.UNKNOWN, EnumTest02.YES, EnumTest02.NO, EnumTest02.MAYBE, EnumTest02.SURE]);
		}
		
		// -------------------------------------------------------------------------------
		// FIELDS
		// -------------------------------------------------------------------------------
		
		private var _sign:String;
		
		// -------------------------------------------------------------------------------
		// CONSTRUCTORS
		// -------------------------------------------------------------------------------		
		
		public function EnumTest02(id:int, name:String, description:String, sign:String)
		{
			super(id, name, description);
			
			_sign = sign;
		}
		
		// -------------------------------------------------------------------------------
		// PROPERTIES
		// -------------------------------------------------------------------------------		
		
		public function get sign():String
		{
			return _sign;
		}
		
		// -------------------------------------------------------------------------------
		// STATIC METHODS
		// -------------------------------------------------------------------------------
		
		public static function list():Array
		{
			return Enum.list(REFERENCE.UID);
		}
		
		public static function names():Array
		{
			return Enum.names(REFERENCE.UID);
		}
		
		public static function getById(id:int):EnumTest02
		{
			return Enum.getById(REFERENCE.UID, id) as EnumTest02;
		}
		
		public static function getByName(name:String):EnumTest02
		{
			return Enum.getByName(REFERENCE.UID, name) as EnumTest02;
		}
		
		public static function getByDescription(description:String):EnumTest02
		{
			return Enum.getByDescription(REFERENCE.UID, description) as EnumTest02;
		}
		
		public static function getBySign(sign:String):EnumTest02
		{
			return Enum.getByProperty(REFERENCE.UID, "sign", sign) as EnumTest02;
		}
		
	}
}